import  os
import tkinter as tk
import tkinter.messagebox
import requests
from PIL import Image, ImageTk
from tkinter import filedialog

########################################################
"""
1.创建主窗口
2.这是窗口标题
3.将图片设置为窗口背景
"""
win = tk.Tk()
win.title("Python图片爬取程序")
canvas = tk.Canvas(win, width=600, height=400, bd=0, highlightthickness=0)
impath='bg.gif'
img= Image.open(impath)
photo = ImageTk.PhotoImage(img)
canvas.create_image(250, 350, image=photo)
canvas.pack()
###########################################################

"""
1.创建菜单条
2.配置
3.点击菜单选项要执行的方法
4.创建一个菜单选项
"""
menubar = tkinter.Menu(win)
win.config(menu=menubar)
label = tkinter.Label(win, text="")
label.pack()
menu1 = tkinter.Menu(menubar, tearoff=False)#tearoff  设置为True时，表明这个菜单是可以独立出来的，设置为False时，菜单不可独立,默认时是True

##定义菜单选项执行命令

"""
定义一个打开保存目录的操作
"""
path1 = os.getcwd()
path2 = path1 + "\images"
def open_dir():
    if not os.path.exists(path2):
        os.mkdir(path2)
    os.system("start  explorer %s" % path2)
"""
1,获取默认路径
2...........自己理解吧,反正我懵了

"""
def set_defau_dir():
    def set_save_path():
        global path2
        path2=set_dir.get()
    path1 = os.getcwd()
    path2 = path1 + "\images"
    var_set_path = tk.StringVar()
    open_dir=tk.Toplevel(width=400, height=100)
    open_dir.title("设置默认保存路径",)
    var_set_path.set( path2)
    set_dir = tk.Entry(open_dir, textvariable=var_set_path)
    set_dir.place( width=200, height=30, )
    set_save = tk.Button(open_dir, text="保存设置", command=set_save_path,).place(x=300,y=10)


#给文件菜单选项添加内容
list1 = ["打开文件保存目录", "设置文件保存路径", "Exit"]
for item in list1:
    if item == "Exit":
        menu1.add_separator()
        menu1.add_command(label=item,command=win.quit)
    elif item == "打开文件保存目录" :
        menu1.add_command(label=item, command=open_dir)
    elif item == "设置文件保存路径":
        menu1.add_command(label=item, command=set_defau_dir)
    else:
        menu1.add_command(label=item,command=func1)

#3向菜单条上添加菜单选项
menubar.add_cascade(label="文件", menu=menu1)
#再创建一个关于菜单选项
menu2 = tkinter.Menu(menubar,tearoff=False)
menubar.add_cascade(label="关于", menu=menu2)
menu2.add_command(label="检查更新")
menu2.add_command(label="关于作者")





##设置程序界面信息
tk.Label(win, text="要爬取的图片URL：   ",font=("宋体",15)).place(x=60, y=90, height=30, width=200)#x与y的数值为坐标轴
tk.Label(win, text="将图片重命名为：   ",font=("宋体",15)).place(x=60, y=150, height=30, width=200) #x与y的数值为坐标轴


##设置URL输入框
var_url_path = tk.StringVar()#设置用户名函数类型为字符串
var_file_name = tk.StringVar()

#URL输入框默认信息
var_url_path.set('https://attach.bbs.miui.com/forum/201906/05/124414dmm5ji0uiub0shss.jpg.thumb.jpg')#设置输入框默认显示信息
entry_url_name = tk.Entry(win, textvariable=var_url_path)
entry_url_name.place(x=250, y=89, width=300, height=30,)


#文件名输入框
var_file_name = tk.StringVar()
entry_file_name = tk.Entry(win, textvariable=var_file_name)
entry_file_name.place(x=250, y=149, height=30)

#文件名输入框默认信息设置
var_file_name.set('不输入则使用原文件名')
entry_file_name = tk.Entry(win, textvariable=var_file_name)
entry_file_name.place(x=250, y=149, width=300, height=30,)


#自定义爬取指令函数的操作
def start_paqu():
    url = var_url_path.get()
    if url:
        file_name = var_file_name.get()
        if file_name:
            tk.messagebox.showinfo(title="爬取结果", message="文件已保存")




#自定义注册指令函数的操作
def start_file():
    pass

def info():
    tk.messagebox.showinfo(title="温馨提示", message="你瞅啥")


#创建爬取及打开按钮
bt_login = tk.Button(win, text="开始爬取", font=('宋体',15), command=start_paqu).place(x=60,y=250)
bt_register = tk.Button(win, text="打开已保存的文件", font=('宋体',15), command=start_file).place(x=260,y=250)


#创建退出按钮
bt_exit = tk.Button(win, text="退出", font=("宋体",15),command=exit).place(x=500,y=250)


#创建作者信息
bt_info = tk.Button(win, text="By：刘某人", font=("宋体",15),command=info).place(x=250,y=350)








#进入消息循环
win.mainloop()